Open In Colab

OCR pomocí Pythonu¶

K OCR lze v Pythonu použít knihovnu pytesseract, postavenĆ© na nĆ”stroji Tesseract. Nejprve je tudíž potřeba mĆ­t nainstallovaný Tesseract, což nenĆ­ triviĆ”lnĆ­ Ćŗloha, neboÅ„ zĆ”visĆ­ na konkrĆ©tnĆ­ verzi operečnĆ­ho systĆ©mu. Instrukce pro windows a linux je možnĆ© nalĆ©zt zde: https://github.com/UB-Mannheim/tesseract/wiki. Pro mac nĆ”m napovĆ­ např. ChatGPT. Jelikož pracuji na macu, zde nabĆ­zĆ­m příkazy k instalaci Tesseractu pomocĆ­ terminĆ”lovĆ©ho instalačnĆ­ho nĆ”stroje brew:

brew install tessaract
brew install tessaract-lang

Pro ukĆ”zku si načteme jeden dokument z projektu scriptum.cz, který neproÅ”el OCR analýzou:

InĀ [1]:
#!pip install PyMuPDF
import fitz
import requests
import io
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import pytesseract
import cv2
import matplotlib.patches as patches
import re
from bs4 import BeautifulSoup
import pandas as pd
import nltk
InĀ [2]:
url = "https://scriptum.cz/soubory/scriptum/svedectvi/svedectvi_1966_29.pdf" # "https://scriptum.cz/soubory/scriptum/komunikace/prazske_komunikace_1987_01.pdf"

pdf_object = io.BytesIO(requests.get(url).content)
doc = fitz.open("pdf", pdf_object.read())
doc.page_count
Out[2]:
169

Pro potřeby testovĆ”nĆ­ opět vybereme jednu nĆ”hodnou strĆ”nku a vytvoříme z nĆ­ objekt obrĆ”zku.

InĀ [3]:
p = doc.load_page(20)
pix = p.get_pixmap()
np_array = np.frombuffer(pix.samples, dtype=np.uint8).reshape(pix.height, pix.width, pix.n)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array)
ax.set_axis_off()
No description has been provided for this image
InĀ [4]:
%%time
pytesseract.image_to_string(np_array, lang="ces")
CPU times: user 31.4 ms, sys: 3.78 ms, total: 35.2 ms
Wall time: 1.04 s
Out[4]:
'NaŔím prvnĆ­m cem munĆ© tedy byt dosĆ”hnout toho, sby se v těchto zemĆ­ch\npohlĆ­cio na Německo, ktrĆ© představujeme, bez nedÅÆvěry a obav; MusĆ­me opět\naka dÅÆvěru a porozuměnĆ­, čo ve stejnĆ© mĆ­Å™e, jkĆ© jeme dosĆ”hli na ZĆ”padě,\n"Toje obtížný Ćŗkol s nepodaří se nĆ”m jej plnit nk rychle, Hlboce zakořeněnĆ©\nÅ”patnĆ© vzpomĆ­nky na Německo  předsadky o něm se ve střednĆ­ Bropě zĆ”měrně\ndržjĆ­ oživujĆ­; děsivĆ” představa 0 mirariickĆ©m a rovonÅ”sskĆ©m Německu\nje tož levný a ĆŗÄÅ”aný prostředek, jk připoutat yo země k SovětskĆ©mu sv\n(zĆ­skat apod minimĆ”lnĆ­ podporu vetjnĆ©ho mĆ­něnĆ­ pro domĆ”cĆ­ komunitickĆ©\nlĆ”dy, Přeno věřím, že budeme-li trpělivĆ­, podaří se nĆ”m prokĆ”zat, že dneÅ”nĆ­\nNĆ”mecko jako součist novĆ© Evropy, j dobrým sousedem, který ledě poru\nměnĆ­, nikoli pomotu, bezpečnost ro vÅ”ehny 3 nĆ”ol napětĆ­.\nVĆ­ rozpustĆ­ nedÅÆvěm a strach oepolevime, le tohoto cĆ­le nemůžeme\nSosĆ”hnout ak, že e řekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadněji\nkdybychom shui sklidit pomĆ­vý norka SovětÅÆ zĆ­skat přízeň nynějŔích vlĆ”d\nVe střednĆ­ a východnĆ­ Evropě, než kdybychom uznali dneÅ”nĆ­ sev vět vzdali\n36 za vÅ”echny Němce prĆ”va na sebeurčenĆ­ 3 ma obnovu jednoty Německu,\nSpolečnĆ© zĆ”jmy celĆ© Evropy nĆ”m věk nedovolujĆ­, sbychom s vydali m kovou\nklamou cestu\n(ČÔe od čnu se nĆ”m doporučuje, bychom na německĆ© sjednocenĆ­ pohltĆ­ spe\njako oa historický proces, který je třeba ponechat hojvým ĆŗÄinkÅÆm čas, než\nJako a zĆ”kladnĆ­ požadavek naŔí polsky. PoklĆ”dĆ”m takovĆ© rady za nereaitickĆ©\nPolitickĆ” rezignace tohoto dru by zmaří naděje NěmcÅÆ, Å”jĆ­Ć­h za železnou\n(oponou, pomĆ”hal by konsolidovat nepřirozenĆ© A nespravadinĆ© rozdělenĆ­ naÅ”\nzemě, aniž přitom přinesla Evropě mĆ­r a bezpečnost. Naopak, zachovala by ve\nStřednĆ­ Evrupě natrvalo nebezpoěnĆ© ohnisko nap\nRortoscĆ­ nespokojenost německĆ©ho nĆ”roda  trjcĆ­m romdělenĆ­m Německa xe\nProjevuje stĆ”le řeeněj olicky, ŽÔdnĆ” němockĆ” vlĆ”da, ktemw Ćŗstava zavasuje\nzavazuje vlĆ”d na, aby jednala jmĆ©nem vech Něr\nJednotu, nemůže opustĆ­ polku opětovnĆ©ho sjednocenĆ­ země. Ne\ndvazku zhostit aÅ” ak, že postě ponechĆ” eÅ”enĆ­ hkihodĆ”rným ĆŗÄi\ntajně jko ze smeickĆ” MĆ”da nem zbavĆ­ ĆŗstavnĆ­ povinno ā€žzajit paže\nĆ”nĆ­ svobody současným i budovelm pokoenĆ­mā€œ. Nikdo takĆ© nemůže od nĆ”r\nska, že s6 v tĆ©to situaci vylovĆ­mo zĆ”vazně X ĆŗzemnĆ­m otĆ”skĆ”m, dokud jam\nmevyslechli nĆ”zor vÅ”ech NěmeÅÆ; tyto otĆ”zky le řeÅ”it poze v souvislosti s\nā€žmĆ­rovou smlorou, týkajĆ­cĆ­ se celĆ©ho Německa. Dli jsme vÅ”ak již několikrt\n\npevnĆ© zĆ”ruky, že i přejeme řeÅ”it otĆ”sko východnĆ­ch německých hranic v mĆ­ru\niko nĆ”lĆ­m\n\nMĆ”- doj k opravdovĆ©mu uvolněnĆ­ napět, mus se NěmcÅÆm v celĆ©m Němocku\ndostat příležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurčenĆ­, jk to žÔdĆ” společnĆ©\nprohlÔŔenĆ­ tĆ­ zĆ”padnĆ­ch velmocĆ­ z 26. června 1964. Abychom i zjednal 110\nžÔkladnĆ­ lidskĆ© prĆ”vo, nesmĆ­ naÅ”e polka vzbuzovat neoprĆ”vněnĆ©, naděje le\n*pĆ­e směřovat k obnovenĆ­ vatahÅÆ mesi Východem a ZĆ”padem, založených na\nvzĆ”jemnĆ© dÅÆvěře, Ā« odstraňovat tk nejprve drobnějŔí, sle pozděj * hlvnĆ­\nzdroje napět.\n\nĀ»\n'

Tuto proceduru nynĆ­ snadno aplikujeme na vÅ”echny strĆ”nky v danĆ©m dokumentu. Tato procedura vÅ”ak již může zabrat nezanedbatelný čas.

InĀ [5]:
%%time
text = ""
for p in doc:
    pix = p.get_pixmap()
    np_array = np.frombuffer(pix.samples, dtype=np.uint8).reshape(pix.height, pix.width, pix.n)
    str = pytesseract.image_to_string(np_array, lang="ces") + "[pagebreak]"
    text += str 
CPU times: user 7.9 s, sys: 1.37 s, total: 9.28 s
Wall time: 2min 25s

Podívejme se nyní na výsledný text. Z kolika sestÔvÔ znaků?

InĀ [6]:
len(text)
Out[6]:
347226
InĀ [7]:
text[16000:17000]
Out[7]:
'y ve\neny, SvěskĆ” homonkĆ© miok ne\nÅ kčko ke mate ne zvýlen žňoanĆ­\nÅ oněnĆ” elita votýk  vějo vět\nAv doch, kdy JelmnĆ© opona byha\nAeprodĆ”nĆ”. Čím atrokých pmcovnĆ­ch\nVarÅÆ se snĆ­ do jinĆ© mÅÆry me pode\nore Ā© veĆ”jnĆ© debaty 0 druhotných\nrdŔémach. Jo York ZĆ­ne věk moja\n(bye žÔdný z ĆŗÄ›cho pokrokÅÆ neznhlĆ”\nAovbějĆ­ jĆ”dro orměmu, kerý umožnĆ­\n\nBresnakĆ©ho knihy The Svit Bor — Unity om Cenfic ve Svědeo,\n\n9\n[pagebreak](inv měn. KomunickĆ© arne rĆ©\nmĆ© zaumynon z vaojeje prĆ”vo ro\ndom o konečnou prom o eh\nzĆ”mĆ”ných prolĆ”much vněnkĆ©ho see\nmdo zĆ”vĆ© kone zvnit komuni.\nkĆ© srmny vadou jen nĆ”kolka ma, z\ncd kaj mĆ”te ucvĆ”t mac ako 10\nV Sem, Ā» tmě čim Cnačov\n\ni som umýsenl neeměo z\nk oněnkých okruhÅÆ. Poem x\nÅ lĆ”mkým m Danilom Je toho novým\nPlný Ćŗkonem\n\nUSA světovou obilnĆ­cĆ­\n\nJed bodýských Pier (2. edn 1965)\nJena cu spojenĆ© uy majĆ”kem\n(Ć”nockem ab. řad drvkou zdem\nVÔŔe vĆ”l obilný dot vokých\nÅ k povoe jedu nĆ”padnĆ­ Brne\novĆ” nl z Ćŗte uměni, čnĆ­\nn ssl dovĆ”tj a poune dvě je vk\nlo Aram o Sev Armenia\nroměný ro obilnin ve Ćŗech obdobĆ­c'

Vidíme, že výsledky nejsou kdovíjaké.

Morfologické transformace¶

Často se potýkĆ”me s tĆ­m, že podkladovĆ© obrĆ”zky (skeny jednotlivých stran) nejsou v dobrĆ© kvalitě. Existuje vÅ”ak řada algoritmÅÆ "out-of-the-box", kterĆ© mohou kvalitu obrĆ”zkÅÆ změnit, např. zvýŔenĆ­m kontrastu.

InĀ [8]:
p = doc.load_page(20)
pix = p.get_pixmap()
np_array = np.frombuffer(pix.samples, dtype=np.uint8).reshape(pix.height, pix.width, pix.n)
InĀ [9]:
kernel = np.ones((2, 2), np.uint8)
np_array_corrected = cv2.erode(np_array, kernel, iterations=1)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
m
A l: n n

Úsilí
nj

tĆ”k přtdněji pick,
vane vlĆ”du naÅ”, by jednala jĆ­ ore rev Něm a bav něne k
ka oněm zpĆ­mocnĆ­ země NemĆ”te lm

|
No description has been provided for this image
InĀ [10]:
# DILATION
kernel = np.ones((1, 1), np.uint8)
np_array_corrected = cv2.dilate(np_array, kernel, iterations=1)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
NaŔím prvnĆ­m cem munĆ© tedy byt dosĆ”hnout toho, sby se v těchto zemĆ­ch
pohlĆ­cio na Německo, ktrĆ© představujeme, bez nedÅÆvěry a obav; MusĆ­me opět
aka dÅÆvěru a porozuměnĆ­, čo ve stejnĆ© mĆ­Å™e, jkĆ© jeme dosĆ”hli na ZĆ”padě,
"Toje obtížný Ćŗkol s nepodaří se nĆ”m jej plnit nk rychle, Hlboce zakořeněnĆ©
Å”patnĆ© vzpomĆ­nky na Německo  předsadky o něm se ve střednĆ­ Bropě zĆ”měrně
držjĆ­ oživujĆ­; děsivĆ” představa 0 mirariickĆ©m a rovonÅ”sskĆ©m Německu
je tož levný a ĆŗÄÅ”aný prostředek, jk připoutat yo země k SovětskĆ©mu sv
(zĆ­skat apod minimĆ”lnĆ­ podporu vetjnĆ©ho mĆ­něnĆ­ pro domĆ”cĆ­ komunitickĆ©
lĆ”dy, Přeno věřím, že budeme-li trpělivĆ­, podaří se nĆ”m prokĆ”zat, že dneÅ”nĆ­
NĆ”mecko jako součist novĆ© Evropy, j dobrým sousedem, který ledě poru
měnĆ­, nikoli pomotu, bezpečnost ro vÅ”ehny 3 nĆ”ol napětĆ­.
VĆ­ rozpustĆ­ nedÅÆvěm a strach oepolevime, le tohoto cĆ­le nemůžeme
SosĆ”hnout ak, že e řekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadněji
kdybychom shui sklidit pomĆ­vý norka SovětÅÆ zĆ­skat přízeň nynějŔích vlĆ”d
Ve střednĆ­ a východnĆ­ Evropě, než kdybychom uznali dneÅ”nĆ­ sev vět vzdali
36 za vÅ”echny Němce prĆ”va na sebeurčenĆ­ 3 ma obnovu jednoty Německu,
SpolečnĆ© zĆ”jmy celĆ© Evropy nĆ”m věk nedovolujĆ­, sbychom s vydali m kovou
klamou cestu
(ČÔe od čnu se nĆ”m doporučuje, bychom na německĆ© sjednocenĆ­ pohltĆ­ spe
jako oa historický proces, který je třeba ponechat hojvým ĆŗÄinkÅÆm čas, než
Jako a zÔkladní požadavek naŔí polsky. PoklÔdÔm takové rady za nereaitické
PolitickĆ” rezignace tohoto dru by zmaří naděje NěmcÅÆ, Å”jĆ­Ć­h za železnou
(oponou, pomĆ”hal by konsolidovat nepřirozenĆ© A nespravadinĆ© rozdělenĆ­ naÅ”
země, aniž přitom přinesla Evropě mĆ­r a bezpečnost. Naopak, zachovala by ve
StřednĆ­ Evrupě natrvalo nebezpoěnĆ© ohnisko nap
RortoscĆ­ nespokojenost německĆ©ho nĆ”roda  trjcĆ­m romdělenĆ­m Německa xe
Projevuje stĆ”le řeeněj olicky, ŽÔdnĆ” němockĆ” vlĆ”da, ktemw Ćŗstava zavasuje
zavazuje vlĆ”d na, aby jednala jmĆ©nem vech Něr
Jednotu, nemůže opustĆ­ polku opětovnĆ©ho sjednocenĆ­ země. Ne
dvazku zhostit aÅ” ak, že postě ponechĆ” eÅ”enĆ­ hkihodĆ”rným ĆŗÄi
tajně jko ze smeickĆ” MĆ”da nem zbavĆ­ ĆŗstavnĆ­ povinno ā€žzajit paže
Ć”nĆ­ svobody současným i budovelm pokoenĆ­mā€œ. Nikdo takĆ© nemůže od nĆ”r
ska, že s6 v tĆ©to situaci vylovĆ­mo zĆ”vazně X ĆŗzemnĆ­m otĆ”skĆ”m, dokud jam
mevyslechli nĆ”zor vÅ”ech NěmeÅÆ; tyto otĆ”zky le řeÅ”it poze v souvislosti s
ā€žmĆ­rovou smlorou, týkajĆ­cĆ­ se celĆ©ho Německa. Dli jsme vÅ”ak již několikrt

pevnĆ© zĆ”ruky, že i přejeme řeÅ”it otĆ”sko východnĆ­ch německých hranic v mĆ­ru
iko nƔlƭm

MĆ”- doj k opravdovĆ©mu uvolněnĆ­ napět, mus se NěmcÅÆm v celĆ©m Němocku
dostat příležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurčenĆ­, jk to žÔdĆ” společnĆ©
prohlÔŔenĆ­ tĆ­ zĆ”padnĆ­ch velmocĆ­ z 26. června 1964. Abychom i zjednal 110
žÔkladnĆ­ lidskĆ© prĆ”vo, nesmĆ­ naÅ”e polka vzbuzovat neoprĆ”vněnĆ©, naděje le
*pĆ­e směřovat k obnovenĆ­ vatahÅÆ mesi Východem a ZĆ”padem, založených na
vzĆ”jemnĆ© dÅÆvěře, Ā« odstraňovat tk nejprve drobnějŔí, sle pozděj * hlvnĆ­
zdroje napět.

Ā»
No description has been provided for this image
InĀ [11]:
# EROSION
kernel = np.ones((1, 1), np.uint8)
np_array_corrected = cv2.erode(np_array, kernel, iterations=1)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
NaŔím prvnĆ­m cem munĆ© tedy byt dosĆ”hnout toho, sby se v těchto zemĆ­ch
pohlĆ­cio na Německo, ktrĆ© představujeme, bez nedÅÆvěry a obav; MusĆ­me opět
aka dÅÆvěru a porozuměnĆ­, čo ve stejnĆ© mĆ­Å™e, jkĆ© jeme dosĆ”hli na ZĆ”padě,
"Toje obtížný Ćŗkol s nepodaří se nĆ”m jej plnit nk rychle, Hlboce zakořeněnĆ©
Å”patnĆ© vzpomĆ­nky na Německo  předsadky o něm se ve střednĆ­ Bropě zĆ”měrně
držjĆ­ oživujĆ­; děsivĆ” představa 0 mirariickĆ©m a rovonÅ”sskĆ©m Německu
je tož levný a ĆŗÄÅ”aný prostředek, jk připoutat yo země k SovětskĆ©mu sv
(zĆ­skat apod minimĆ”lnĆ­ podporu vetjnĆ©ho mĆ­něnĆ­ pro domĆ”cĆ­ komunitickĆ©
lĆ”dy, Přeno věřím, že budeme-li trpělivĆ­, podaří se nĆ”m prokĆ”zat, že dneÅ”nĆ­
NĆ”mecko jako součist novĆ© Evropy, j dobrým sousedem, který ledě poru
měnĆ­, nikoli pomotu, bezpečnost ro vÅ”ehny 3 nĆ”ol napětĆ­.
VĆ­ rozpustĆ­ nedÅÆvěm a strach oepolevime, le tohoto cĆ­le nemůžeme
SosĆ”hnout ak, že e řekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadněji
kdybychom shui sklidit pomĆ­vý norka SovětÅÆ zĆ­skat přízeň nynějŔích vlĆ”d
Ve střednĆ­ a východnĆ­ Evropě, než kdybychom uznali dneÅ”nĆ­ sev vět vzdali
36 za vÅ”echny Němce prĆ”va na sebeurčenĆ­ 3 ma obnovu jednoty Německu,
SpolečnĆ© zĆ”jmy celĆ© Evropy nĆ”m věk nedovolujĆ­, sbychom s vydali m kovou
klamou cestu
(ČÔe od čnu se nĆ”m doporučuje, bychom na německĆ© sjednocenĆ­ pohltĆ­ spe
jako oa historický proces, který je třeba ponechat hojvým ĆŗÄinkÅÆm čas, než
Jako a zÔkladní požadavek naŔí polsky. PoklÔdÔm takové rady za nereaitické
PolitickĆ” rezignace tohoto dru by zmaří naděje NěmcÅÆ, Å”jĆ­Ć­h za železnou
(oponou, pomĆ”hal by konsolidovat nepřirozenĆ© A nespravadinĆ© rozdělenĆ­ naÅ”
země, aniž přitom přinesla Evropě mĆ­r a bezpečnost. Naopak, zachovala by ve
StřednĆ­ Evrupě natrvalo nebezpoěnĆ© ohnisko nap
RortoscĆ­ nespokojenost německĆ©ho nĆ”roda  trjcĆ­m romdělenĆ­m Německa xe
Projevuje stĆ”le řeeněj olicky, ŽÔdnĆ” němockĆ” vlĆ”da, ktemw Ćŗstava zavasuje
zavazuje vlĆ”d na, aby jednala jmĆ©nem vech Něr
Jednotu, nemůže opustĆ­ polku opětovnĆ©ho sjednocenĆ­ země. Ne
dvazku zhostit aÅ” ak, že postě ponechĆ” eÅ”enĆ­ hkihodĆ”rným ĆŗÄi
tajně jko ze smeickĆ” MĆ”da nem zbavĆ­ ĆŗstavnĆ­ povinno ā€žzajit paže
Ć”nĆ­ svobody současným i budovelm pokoenĆ­mā€œ. Nikdo takĆ© nemůže od nĆ”r
ska, že s6 v tĆ©to situaci vylovĆ­mo zĆ”vazně X ĆŗzemnĆ­m otĆ”skĆ”m, dokud jam
mevyslechli nĆ”zor vÅ”ech NěmeÅÆ; tyto otĆ”zky le řeÅ”it poze v souvislosti s
ā€žmĆ­rovou smlorou, týkajĆ­cĆ­ se celĆ©ho Německa. Dli jsme vÅ”ak již několikrt

pevnĆ© zĆ”ruky, že i přejeme řeÅ”it otĆ”sko východnĆ­ch německých hranic v mĆ­ru
iko nƔlƭm

MĆ”- doj k opravdovĆ©mu uvolněnĆ­ napět, mus se NěmcÅÆm v celĆ©m Němocku
dostat příležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurčenĆ­, jk to žÔdĆ” společnĆ©
prohlÔŔenĆ­ tĆ­ zĆ”padnĆ­ch velmocĆ­ z 26. června 1964. Abychom i zjednal 110
žÔkladnĆ­ lidskĆ© prĆ”vo, nesmĆ­ naÅ”e polka vzbuzovat neoprĆ”vněnĆ©, naděje le
*pĆ­e směřovat k obnovenĆ­ vatahÅÆ mesi Východem a ZĆ”padem, založených na
vzĆ”jemnĆ© dÅÆvěře, Ā« odstraňovat tk nejprve drobnějŔí, sle pozděj * hlvnĆ­
zdroje napět.

Ā»
No description has been provided for this image
InĀ [12]:
# CLOSING
kernel = np.ones((1, 1), np.uint8)
np_array_corrected = cv2.morphologyEx(np_array, cv2.MORPH_CLOSE, kernel)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
NaŔím prvnĆ­m cem munĆ© tedy byt dosĆ”hnout toho, sby se v těchto zemĆ­ch
pohlĆ­cio na Německo, ktrĆ© představujeme, bez nedÅÆvěry a obav; MusĆ­me opět
aka dÅÆvěru a porozuměnĆ­, čo ve stejnĆ© mĆ­Å™e, jkĆ© jeme dosĆ”hli na ZĆ”padě,
"Toje obtížný Ćŗkol s nepodaří se nĆ”m jej plnit nk rychle, Hlboce zakořeněnĆ©
Å”patnĆ© vzpomĆ­nky na Německo  předsadky o něm se ve střednĆ­ Bropě zĆ”měrně
držjĆ­ oživujĆ­; děsivĆ” představa 0 mirariickĆ©m a rovonÅ”sskĆ©m Německu
je tož levný a ĆŗÄÅ”aný prostředek, jk připoutat yo země k SovětskĆ©mu sv
(zĆ­skat apod minimĆ”lnĆ­ podporu vetjnĆ©ho mĆ­něnĆ­ pro domĆ”cĆ­ komunitickĆ©
lĆ”dy, Přeno věřím, že budeme-li trpělivĆ­, podaří se nĆ”m prokĆ”zat, že dneÅ”nĆ­
NĆ”mecko jako součist novĆ© Evropy, j dobrým sousedem, který ledě poru
měnĆ­, nikoli pomotu, bezpečnost ro vÅ”ehny 3 nĆ”ol napětĆ­.
VĆ­ rozpustĆ­ nedÅÆvěm a strach oepolevime, le tohoto cĆ­le nemůžeme
SosĆ”hnout ak, že e řekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadněji
kdybychom shui sklidit pomĆ­vý norka SovětÅÆ zĆ­skat přízeň nynějŔích vlĆ”d
Ve střednĆ­ a východnĆ­ Evropě, než kdybychom uznali dneÅ”nĆ­ sev vět vzdali
36 za vÅ”echny Němce prĆ”va na sebeurčenĆ­ 3 ma obnovu jednoty Německu,
SpolečnĆ© zĆ”jmy celĆ© Evropy nĆ”m věk nedovolujĆ­, sbychom s vydali m kovou
klamou cestu
(ČÔe od čnu se nĆ”m doporučuje, bychom na německĆ© sjednocenĆ­ pohltĆ­ spe
jako oa historický proces, který je třeba ponechat hojvým ĆŗÄinkÅÆm čas, než
Jako a zÔkladní požadavek naŔí polsky. PoklÔdÔm takové rady za nereaitické
PolitickĆ” rezignace tohoto dru by zmaří naděje NěmcÅÆ, Å”jĆ­Ć­h za železnou
(oponou, pomĆ”hal by konsolidovat nepřirozenĆ© A nespravadinĆ© rozdělenĆ­ naÅ”
země, aniž přitom přinesla Evropě mĆ­r a bezpečnost. Naopak, zachovala by ve
StřednĆ­ Evrupě natrvalo nebezpoěnĆ© ohnisko nap
RortoscĆ­ nespokojenost německĆ©ho nĆ”roda  trjcĆ­m romdělenĆ­m Německa xe
Projevuje stĆ”le řeeněj olicky, ŽÔdnĆ” němockĆ” vlĆ”da, ktemw Ćŗstava zavasuje
zavazuje vlĆ”d na, aby jednala jmĆ©nem vech Něr
Jednotu, nemůže opustĆ­ polku opětovnĆ©ho sjednocenĆ­ země. Ne
dvazku zhostit aÅ” ak, že postě ponechĆ” eÅ”enĆ­ hkihodĆ”rným ĆŗÄi
tajně jko ze smeickĆ” MĆ”da nem zbavĆ­ ĆŗstavnĆ­ povinno ā€žzajit paže
Ć”nĆ­ svobody současným i budovelm pokoenĆ­mā€œ. Nikdo takĆ© nemůže od nĆ”r
ska, že s6 v tĆ©to situaci vylovĆ­mo zĆ”vazně X ĆŗzemnĆ­m otĆ”skĆ”m, dokud jam
mevyslechli nĆ”zor vÅ”ech NěmeÅÆ; tyto otĆ”zky le řeÅ”it poze v souvislosti s
ā€žmĆ­rovou smlorou, týkajĆ­cĆ­ se celĆ©ho Německa. Dli jsme vÅ”ak již několikrt

pevnĆ© zĆ”ruky, že i přejeme řeÅ”it otĆ”sko východnĆ­ch německých hranic v mĆ­ru
iko nƔlƭm

MĆ”- doj k opravdovĆ©mu uvolněnĆ­ napět, mus se NěmcÅÆm v celĆ©m Němocku
dostat příležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurčenĆ­, jk to žÔdĆ” společnĆ©
prohlÔŔenĆ­ tĆ­ zĆ”padnĆ­ch velmocĆ­ z 26. června 1964. Abychom i zjednal 110
žÔkladnĆ­ lidskĆ© prĆ”vo, nesmĆ­ naÅ”e polka vzbuzovat neoprĆ”vněnĆ©, naděje le
*pĆ­e směřovat k obnovenĆ­ vatahÅÆ mesi Východem a ZĆ”padem, založených na
vzĆ”jemnĆ© dÅÆvěře, Ā« odstraňovat tk nejprve drobnějŔí, sle pozděj * hlvnĆ­
zdroje napět.

Ā»
No description has been provided for this image
InĀ [13]:
kernel = np.ones((1,1),np.uint8)
opening = cv2.morphologyEx(np_array, cv2.MORPH_OPEN, kernel)
np_array_corrected = cv2.morphologyEx(np_array, cv2.MORPH_CLOSE, kernel)
fig, ax = plt.subplots(dpi=300)
ax.imshow(np_array_corrected)
ax.set_axis_off()
print(pytesseract.image_to_string(np_array_corrected, lang="ces"))
NaŔím prvnĆ­m cem munĆ© tedy byt dosĆ”hnout toho, sby se v těchto zemĆ­ch
pohlĆ­cio na Německo, ktrĆ© představujeme, bez nedÅÆvěry a obav; MusĆ­me opět
aka dÅÆvěru a porozuměnĆ­, čo ve stejnĆ© mĆ­Å™e, jkĆ© jeme dosĆ”hli na ZĆ”padě,
"Toje obtížný Ćŗkol s nepodaří se nĆ”m jej plnit nk rychle, Hlboce zakořeněnĆ©
Å”patnĆ© vzpomĆ­nky na Německo  předsadky o něm se ve střednĆ­ Bropě zĆ”měrně
držjĆ­ oživujĆ­; děsivĆ” představa 0 mirariickĆ©m a rovonÅ”sskĆ©m Německu
je tož levný a ĆŗÄÅ”aný prostředek, jk připoutat yo země k SovětskĆ©mu sv
(zĆ­skat apod minimĆ”lnĆ­ podporu vetjnĆ©ho mĆ­něnĆ­ pro domĆ”cĆ­ komunitickĆ©
lĆ”dy, Přeno věřím, že budeme-li trpělivĆ­, podaří se nĆ”m prokĆ”zat, že dneÅ”nĆ­
NĆ”mecko jako součist novĆ© Evropy, j dobrým sousedem, který ledě poru
měnĆ­, nikoli pomotu, bezpečnost ro vÅ”ehny 3 nĆ”ol napětĆ­.
VĆ­ rozpustĆ­ nedÅÆvěm a strach oepolevime, le tohoto cĆ­le nemůžeme
SosĆ”hnout ak, že e řekneme ových Jivotich zĆ”jmÅÆ: Nic by nebylo snadněji
kdybychom shui sklidit pomĆ­vý norka SovětÅÆ zĆ­skat přízeň nynějŔích vlĆ”d
Ve střednĆ­ a východnĆ­ Evropě, než kdybychom uznali dneÅ”nĆ­ sev vět vzdali
36 za vÅ”echny Němce prĆ”va na sebeurčenĆ­ 3 ma obnovu jednoty Německu,
SpolečnĆ© zĆ”jmy celĆ© Evropy nĆ”m věk nedovolujĆ­, sbychom s vydali m kovou
klamou cestu
(ČÔe od čnu se nĆ”m doporučuje, bychom na německĆ© sjednocenĆ­ pohltĆ­ spe
jako oa historický proces, který je třeba ponechat hojvým ĆŗÄinkÅÆm čas, než
Jako a zÔkladní požadavek naŔí polsky. PoklÔdÔm takové rady za nereaitické
PolitickĆ” rezignace tohoto dru by zmaří naděje NěmcÅÆ, Å”jĆ­Ć­h za železnou
(oponou, pomĆ”hal by konsolidovat nepřirozenĆ© A nespravadinĆ© rozdělenĆ­ naÅ”
země, aniž přitom přinesla Evropě mĆ­r a bezpečnost. Naopak, zachovala by ve
StřednĆ­ Evrupě natrvalo nebezpoěnĆ© ohnisko nap
RortoscĆ­ nespokojenost německĆ©ho nĆ”roda  trjcĆ­m romdělenĆ­m Německa xe
Projevuje stĆ”le řeeněj olicky, ŽÔdnĆ” němockĆ” vlĆ”da, ktemw Ćŗstava zavasuje
zavazuje vlĆ”d na, aby jednala jmĆ©nem vech Něr
Jednotu, nemůže opustĆ­ polku opětovnĆ©ho sjednocenĆ­ země. Ne
dvazku zhostit aÅ” ak, že postě ponechĆ” eÅ”enĆ­ hkihodĆ”rným ĆŗÄi
tajně jko ze smeickĆ” MĆ”da nem zbavĆ­ ĆŗstavnĆ­ povinno ā€žzajit paže
Ć”nĆ­ svobody současným i budovelm pokoenĆ­mā€œ. Nikdo takĆ© nemůže od nĆ”r
ska, že s6 v tĆ©to situaci vylovĆ­mo zĆ”vazně X ĆŗzemnĆ­m otĆ”skĆ”m, dokud jam
mevyslechli nĆ”zor vÅ”ech NěmeÅÆ; tyto otĆ”zky le řeÅ”it poze v souvislosti s
ā€žmĆ­rovou smlorou, týkajĆ­cĆ­ se celĆ©ho Německa. Dli jsme vÅ”ak již několikrt

pevnĆ© zĆ”ruky, že i přejeme řeÅ”it otĆ”sko východnĆ­ch německých hranic v mĆ­ru
iko nƔlƭm

MĆ”- doj k opravdovĆ©mu uvolněnĆ­ napět, mus se NěmcÅÆm v celĆ©m Němocku
dostat příležitosÅÆ, aby oplati svĆ© prĆ”vo sebeurčenĆ­, jk to žÔdĆ” společnĆ©
prohlÔŔenĆ­ tĆ­ zĆ”padnĆ­ch velmocĆ­ z 26. června 1964. Abychom i zjednal 110
žÔkladnĆ­ lidskĆ© prĆ”vo, nesmĆ­ naÅ”e polka vzbuzovat neoprĆ”vněnĆ©, naděje le
*pĆ­e směřovat k obnovenĆ­ vatahÅÆ mesi Východem a ZĆ”padem, založených na
vzĆ”jemnĆ© dÅÆvěře, Ā« odstraňovat tk nejprve drobnějŔí, sle pozděj * hlvnĆ­
zdroje napět.

Ā»
No description has been provided for this image
InĀ [14]: